"""
Numpy是一个科学计算的库，可以快速的处理任意维度的数组，支持常见的数组和矩阵的操作。
    对比Python原生的数学计算更加的高效和简介

想使用numpy 在pycharm中的 Terminal进行安装
     控制台安装：pip install numpy
     在pycharm设置中进行安装

 想使用numpy 进行导入
  import numpy as np
"""
import numpy as np #给numpy起个别名为np,后面的使用直接用np

#创建数组对象
#1.使用array函数，通过list创建数组对象
arr1 = np.array([1,2,3,4,5])#创建一维数组
print(arr1)
arr2 = np.array([ [1,2,3],     [4,5,6]     ]  ) #创建二维数组
print(arr2)

#2.使用arange函数，指定取值范围和跨度(步长)创建数组对象
arr3 = np.arange(0,20,2) # 左闭右开的区间
print(arr3)

#3.使用linspace函数，用指定的范围和元素个数创建数组对象，生成等差数列
arr4 = np.linspace(-1,1,11)
print(arr4)

#4.使用logspace函数，生成等比数列
arr5 = np.logspace(1,10,num=10,base=2) #元素的个数为10  底数为2
print(arr5)

#5.使用random模块的函数生成随机数创建数组
arr6 = np.random.rand(10)#生成[0,1)的10个随机小数
print(arr6)
#生成[1,100)的10个随机整数
arr7 = np.random.randint(1,100,10)
print(arr7)
#生成0-1的随机小数的 3行4列的二维数组
arr8 = np.random.rand(3,4) # 3 三个一维数组， 4：每个数组四个元素
print(arr8)
#生成1-100到的随机整数的三维数组
arr9 = np.random.randint(1,100,(3,4,5)  )# 3:三个二维数组，4 每个二维数组有4个一维数组，5 每个一维数组有5个元素
print(arr9)

#6.创建全0 全1 指定元素的数组
arr10 = np.zeros((3,4))#创建一个三行四列全是0的矩阵
print(arr10)

arr11= np.ones((3,4))
print(arr11)

arr12 = np.full((3,4),10)#创建一个三行四列全是10的矩阵
print(arr12)

#7.创建对称矩阵 eye
arr13 = np.eye(4) #创建四行四列的对称矩阵
print(arr13)

#数组对象的属性
#size:获取数组的长度，元素的个数
print(arr13.size)

#shape：获取数组的形状
print(arr13.shape) #(4行, 4列)
print(arr1.shape)#一维数组：(5,) 5个元素

#ndim：获取数组的维度
print(arr1.ndim)
print(arr12.ndim)
print(arr9.ndim)

#数组的索引运算
#1.普通索引运算
arr14 = np.arange(1,10)#[1,2,3,4,5,6,7,8,9]
print(arr14[0],arr14[arr14.size - 1])#1 9
print(arr14[-arr14.size],arr14[-1])#1 9

arr15 = np.array([  [1,2,3,] , [4,5,6],  [7,8,9]   ])
#获得二维数组中的第一个一维数组中的第二个元素
#arr15[0]获得二维数组中的第一个元素  第一个 一维数组
#arr15[0][1] 在已经获得一维数组中 获取第二个元素
print(arr15[0][1])